package com.bicon.botu.mall.component.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.bicon.botu.mall.component.dto.AppVersionDTO;
import com.bicon.botu.mall.component.entity.AppVersion;
import com.bicon.botu.core.base.common.entity.BaseResult;

/**
 * app版本Service层
 *
 * @Author: 吕祥
 * @Date: Created in 15:40 2017/10/17/017
 */
public interface IAppVersionService extends IService<AppVersion> {

    /**
     * 新增版本
     *
     * @param forcedUpdatingState 强制更新状态(0:非强制，1:强制)
     * @param type                类型：iOS,Android
     * @param versionName         版本名称
     * @param versionCode         版本号
     * @param url                 下载地址
     * @param info                版本说明
     * @param size                文件大小
     * @param times               次数
     * @param state               状态:0未发布，1已发布
     * @return
     */
    boolean saveAppVersion(String type, String versionName, Integer versionCode, String url,
                           String info, Integer size, Integer times, String state, String forcedUpdatingState);

    /**
     * 修改版本
     *
     * @param forcedUpdatingState 强制更新状态(0:非强制，1:强制)
     * @param type                类型：iOS,Android
     * @param versionName         版本名称
     * @param versionCode         版本号
     * @param url                 下载地址
     * @param info                版本说明
     * @param size                文件大小
     * @param times               次数
     * @param state               状态:0未发布，1已发布
     * @return
     */
    boolean updateAppVersion(String id, String type, String versionName, Integer versionCode, String url,
                             String info, Integer size, Integer times, String state, String forcedUpdatingState);

    /**
     * 删除版本
     *
     * @param id 主键id
     * @return
     */
    boolean deleteAppVersion(String id);

    /**
     * 查询一条记录
     *
     * @param id
     * @return
     */
    AppVersionDTO findOneAppVersion(String id);

    /**
     * 版本分页查询
     *
     * @param pageNo   页数
     * @param pageSize 每页记录数
     * @return
     */
    Page<AppVersion> appVersionPage(Integer pageNo, Integer pageSize);

    /**
     * 检查新版本
     *
     * @param versionCode 版本号
     * @return
     */
    BaseResult checkingver(Integer versionCode);
}
